Thunar est le gestionnaire de fichiers de XFCE. Il a été développé pour être à la fois léger et très convivial.
Il est également extensible par l'ajout de greffons installables s'ils ne le sont pas déjà sur votre système.
Thunar est installé par défaut sur Xubuntu et avec l'environnement de bureau XFCE.
La plupart des greffons (ou plugins) sont inclus par défaut dans Xubuntu. Si ce n'est pas le cas ou que vous êtes sur un autre environnement que XFCE, installez-les :
Pour installer ces 3 greffons en une fois, cliquez ici.
Il existe également un greffon qui ajoute la prévisualisation du contenu dans les miniatures pour divers formats de fichiers.1)
Sachez qu'à partir d'Ubuntu 12.04, deux nouveaux greffons sont disponibles dans les dépôts :
Par défaut, et à la différence de Nautilus, Thunar ne peut pas, seul, parcourir des dossiers distants (ftp, dossiers partagés via Samba…).
Pour palier à ce problème, vous pouvez utiliser gigolo [en], comme expliqué sur la page dédiée mais également ici et ici.4)
Par défaut, et à la différence de Nautilus, Thunar ne permet pas directement de partager ses dossiers sur un réseau local (NFS ou Samba).
Les utilisateurs de Xubuntu devront utiliser shares-admin pour configurer leurs partages.
Thunar permet de définir des actions personnalisées. Cela consiste à créer un script (un "action personnalisée"), qui sera disponible via le clic droit de la souris (dans Thunar), sur un répertoire ou un fichier.
Pour créer un script, il faut lancer Thunar, puis
Dans la ligne commande de l'onglet 1, tapez xfce4-terminal -e %f ; dans l'onglet Conditions d'apparition cochez les fichiers Textes et Autres.
Les informations qui sont données par Thunar sont erronées.
Voici un script dégoté il y a un bout de temps, et modifié afin qu'il fonctionne pour plusieurs fichiers.
Si vous souhaitez que celui-ci puisse couper/coller des fichiers, il suffit de remplacer à la ligne 30
cmd="cp -Rp"
par
cmd="mv"
et aux lignes 18, 22, 24, 27, 28, "copie" par "déplacement" et "copié" par "déplacé".
Il suffit donc d'enregistrer ça dans un fichier ayant par exemple comme nom cp_p.sh 5), puis, depuis Thunar, faire un clic droit dessus → "Propriétés…", aller dans le 3ème onglet → "Permissions" et cocher "Autoriser ce fichier à être exécuté comme un programme".
Ensuite, toujours dans Thunar, menu Éditer → "Configurer les actions personnalisées…", et sur la droite, premier bouton → "Ajouter une action personnalisée".
Vous renseignerez comme suit :
~/cp_p.sh %F. Attention le F doit bien être majuscule.Puis aller sur le 2ème onglet → "Conditions d'apparition" et cocher toutes les possibilités, et enfin valider.
Maintenant, quand vous cliquez droit, vous avez une fonction "Copie améliorée", qui permet d'utiliser le script cp_p.sh à la place de la copie normale.
#! /bin/bash # SRC # https://help.ubuntu.com/community/Nautilus_Scripts # http://ubuntuforums.org/showthread.php?t=101859 # http://ubuntuforums.org/showthread.php?t=417978 # http://forums.archlinux.fr/topic1223.html # PRESENTATION: les + # annulation fonctionnelle (kill process fils, residu supprimé) # check de l'espace libre, des droits. # EXECUTION # à executer en mode graphique avec l'option %m dans nautilus-actions # ou lancer en CLI en se plaçant dans un repertoire où se trouve un gros fichier puis executer Copievers.sh grosFichier.avi # INITIALISATION copy="Copie en cours..." title_copy="Veuillez patienter..." title_success="Succès" title_error="Erreur" title_conflict="Conflit durant la copie" title_select="Selectionnez un répertoire" error="Une erreur est survenue lors de la copie" error_w="Vous n'avez pas les droits en écriture sur" error_s="Pas assez espace disque!" success="correctement copié(s)" progress="Copie en cours" conflict="Voulez-vous remplacer" cmd="cp -Rp" copied=0 nbFiles=0 # FONCTIONS function copie () { ORIG_SIZE=`du -k "$arg"|awk '{print $1}'` checkFreeSpace $ORIG_SIZE $cmd "$arg" "$location" & CP_SIZE=`du -k "$location/${arg//*\//}"|awk '{print $1}'` [ "$CP_SIZE" == "" ] && CP_SIZE=0 ( echo "0" sleep 0.2 while (( $CP_SIZE != $ORIG_SIZE )); do # un echo est obligatoire dans ce while echo "$(( $(( $CP_SIZE * 100 )) / $ORIG_SIZE ))"; sleep 0.2 CP_SIZE=`du -k "$location/${arg//*\//}"|awk '{print $1}'` [ "$CP_SIZE" == "" ] && CP_SIZE=0 done if [ "$CP_SIZE" == "$ORIG_SIZE" ]; then { echo "100" } fi ) | zenity --progress --auto-close --percentage=0 --text "$copy \"$arg\"..." # ^ barre de progression de zenity # v on controle si annulation ou pas. controlCp } # un paramètre: la taille du fichier function checkFreeSpace () { # location sera de la forme /, /tmp, /home, /opt... # on split le path pour trouver la partition part=`echo $location | cut -d'/' -f2` findit=`df | grep $part` # si findit est vide alors concerne la partition / if [ "$findit" == "" ]; then findit=`df / | grep /` fi tab=( $findit ) # point de montage se trouve sur 5 mountPoint=${tab[5]} # l'espace libre sur 3 freeSpace=${tab[3]} if [ $1 -gt $freeSpace ] then zenity --error --text="$error_s" --title "$title_error"; exit 1 fi } function controlCp () { # On peut utiliser $? ou ${PIPESTATUS[0]} if [ "$?" != "0" ]; then # si annulation on kill le fils et on sort du script killChildProcess # on vire le residu pathfile="$location/${arg//*\//}" # on evite les rm -R avec pour paramètre * ~ / . if [ ${#pathfile} -gt 1 ] && [ ${#location} -gt 1 ] && [ ${#arg} -gt 1 ]; then rm -R "$pathfile" fi exit 1 else copied=`expr $copied + 1` fi } function killChildProcess () { # normalement il n'y en a qu'un seul...au cas où. for child in $(ps --ppid $$ -o pid,cmd | grep -R "$cmd" | awk '{print $1}') do kill $child done } # TRAITEMENT # on renseigne le repertoire de destination while ((1)) do location=`zenity --file-selection --directory --title="$title_select"` if [ "$?" = 0 ]; then # si on a pas annuler...on check les droits en écriture if [ -w "$location" ]; then for arg do nbFiles=`expr $nbFiles + 1` # on vérifie si le fichier courant n'existe pas à la destination if [ -e "$location/${arg//*\//}" ]; then # s'il existe message -> conflit zenity --question --title="$title_conflict" --text="$conflict $location/${arg//*\//} ?" if [ "$?" = 0 ]; then # si on souhaite tout de même écraser copie fi else # s'il n'existe pas on copie copie fi done # on check copied / nbFiles if [ $copied -gt 0 ]; then zenity --info --text="$copied/$nbFiles $success" --title "$title_success"; fi break else { zenity --question --title="$title_error" --text="$error_w $location" if [ "$?" = 1 ]; then { exit 1 } fi } fi fi done
Au premier lancement, il met près d'une minute à démarrer, puis démarre en double. Ce bogue serait lié au mécanisme de montage automatique des partages réseau et, pour certains utilisateurs, celui-ci serait résolu lors de la désactivation de ce mécanisme (comme il a été vu ici [en]) :
- lancer la commande suivante :
gksu leafpad /usr/share/gvfs/mounts/network.mount
- mettre la clé "AutoMount", à la valeur "false":
[Mount] Type=network Exec=/usr/lib/gvfs/gvfsd-network AutoMount=false
- enregistrer le fichier et faire une déconnexion/connexion de la session
Ainsi le bogue est contourné mais on peut toujours accéder au réseau dans Thunar.
Si Thunar reconnaît par défaut les clés USB, les médias amovibles et les lecteurs/graveurs de CD et DVD, par contre, avec les versions 0.9.0 et 1.0.1 (installées avec XFCE 4.4.2 & 4.6.1.3), il ne reconnaît plus les partitions de type NTFS et ne monte pas tout seul ce type de partitions.
→ Cf. Lost NTFS mounts with xfce 4.4.2 [en] et Change log : "thunar" package [en].
Vous pouvez toujours utiliser disk-manager, ou tout autre programme ou commande, pour monter vos partitions NTFS. Et si vous voulez que vos partitions figurent dans le panneau de droite de Thunar, il faudra faire un clic droit sur le dossier "Documents" (par exemple) et faire "Envoyer Vers" → "Side Pane".
Ce problème est résolu depuis la version 1.1.1 de Thunar, donc pas de souci avec XFCE 4.8 et suivants.